package com.sky.chapter1.ThreadLocal;

import java.util.ArrayList;

/**
 * @author : wushikai
 * <p>
 * date : 2021-03-25
 */
public class NotThreadLocal {




    static void print(String str){
        //1.1 打印当前线程本地内存中localVariable变量的值
        System.out.println(str+":"+localVariable.get(0));
        //1.2 清除当前线程本地内存中的localVariable变量
        //localVariable.remove();

    }



    //2 创建ThreadLocal变量  注意: 这个是一个  共享的 变量;
    static ArrayList<String> localVariable=new ArrayList<>();




    public static void main(String[] args){
        //3 创建线程demo
        Thread threadOne=new Thread(new Runnable() {
            @Override
            public void run() {
                //3.1 设置线程one中本地变量localvariable的值
                localVariable.add("threadOne local variable");
                //3.2 调用打印函数
                print("thread");
                //3.3 打印本地变量值
                System.out.println("threadOne remove after"+":"+localVariable.get(0));
            }
        });

        //4 创建线程two
        Thread threadTwo = new Thread(new Runnable() {
            @Override
            public void run() {
                //4.1 设置线程two中本地变量localvariable的值
                localVariable.add("threadTwo local variable");
                //4.2 调用打印函数
                print("threadTwo");
                //4.3 打印本地变量值
                System.out.println("threadTwo remove after"+":"+localVariable.get(0));
            }
        });
        //5 启动线程
        threadOne.start();
        threadTwo.start();
    }


}
